package com.jdd.modules.sdkidentifyresultpushlog.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jdd.common.api.vo.Result;
import com.jdd.modules.parking.entity.ParkArmInfo;
import com.jdd.modules.parking.entity.ParkCarEnterLog;
import com.jdd.modules.sdkidentifyresultpushlog.entity.ParkOrderInfoVO;
import com.jdd.modules.sdkidentifyresultpushlog.entity.ReChargeVo;
import com.jdd.modules.sdkidentifyresultpushlog.entity.SdkIdentifyResultPushLog;

import java.text.ParseException;

/**
 * @author ：jdd孙庆伟
 * @date ：Created in 2021/9/3 10:44
 * @description：
 * @modified By：`
 * @version: 1.0
 */

public interface ISdkIdentifyResultPushLogService extends IService<SdkIdentifyResultPushLog> {
    /**
     * @Description  启用遥控器开闸上传消息指令
     * @author shangyue
     * @Date 2022-04-20
     * @param parkArmInfo
     * @return
     */

    public Result  openDaoZhaUploadMessage(ParkArmInfo parkArmInfo);
    /**
     * 出入场处理
     *
     * @param identifyResultPushLog
     * @param parkArmInfo
     * @return void
     * @author jdd孙庆伟
     * @date 2021/9/6 15:13:31
     * @version 1.0
     */
    void identifyJudge(SdkIdentifyResultPushLog identifyResultPushLog, ParkArmInfo parkArmInfo) throws Exception;

    /**
     * 车牌识别软触发
     *
     * @param
     * @return void
     * @author jdd孙庆伟
     * @date 2021/8/30 16:43:30
     * @version 1.0
     */
    Result triggerExt(String serialNo);

    /**
     * 确认开闸 拒绝 语音播报
     *
     * @param reChargeVo
     * @return com.jdd.common.api.vo.Result
     * @author jdd孙庆伟
     * @date 2021/9/1 09:33:15
     * @version 1.0
     */
    void refuseCarEnter(ReChargeVo reChargeVo);

    /**
     * 确认开闸 允许 语音播报
     *
     * @param reChargeVo
     * @return void
     * @author jdd孙庆伟
     * @date 2021/9/1 11:03:11
     * @version 1.0
     */
    void openedSaveParkCarEnterLog(ReChargeVo reChargeVo, ParkCarEnterLog parkCarEnterLog);

    /** 异常情况重新计费
     * @author lcy
     * @date 2021/9/3
     * @param reChargeVo 前端传来的出口信息
     * @return 返回匹配和补录后的订单信息
     */
    Result<ParkOrderInfoVO> getParkOrderInfoVOResult(ReChargeVo reChargeVo) throws ParseException;

    /**
     * 补录，生成入场记录
     *
     * @param parkArmInfo 车道信息
     * @param reChargeVo  前端传的出口信息
     * @return 返回补录后的入场纪录i
     * @author lcy
     * @date 2021/9/3
     */
    ParkCarEnterLog createAbnormalParkCarEnterLog(ParkArmInfo parkArmInfo, ReChargeVo reChargeVo);

    /**
     * 补录，生成入场记录
     *
     * @param parkArmInfo 车道信息
     * @param reChargeVo  前端传的出口信息
     * @return 返回补录后的入场纪录i
     * @author lcy
     * @date 2021/9/3
     */
    ParkCarEnterLog createAbnormalParkCarEnterLogNew(ParkArmInfo parkArmInfo, ReChargeVo reChargeVo);
}
